Skip to content

docs(postgres): state libpq client floor (>=17) and client-vs-server distinction (closes #223) - #244

Merged
simbo1905 merged 2 commits into
mainfrom
216-postgres-libpq-floor
Nov 1, 2026
Merged

simbo1905 merged 2 commits into
mainfrom
216-postgres-libpq-floor

Conversation

@simbo1905

@simbo1905 simbo1905 commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #223.

What

  • ext/postgres/README.md: add the client-vs-server distinction — the floor is on the libpq client library at build/load time, not on the PostgreSQL server version. A libpq 17+ client talks to a pg16 server (e.g. Scaleway serverless Postgres) without issue.
  • docs/RELEASE-LAYOUT.md / docs/RELEASE-LAYOUT-CN.md: install comments now read "requires libpq CLIENT >= 17; server can be pg16+".
  • spec/postgres_spec.lua: the "not built" pending message now names the libpq client floor as the likely cause and points at the README (closes the CI blind spot where the build's || true swallowed the real error).

Evidence

Compile-time guard already exists in ext/postgres/postgres.c (lines 4-11: #error "lunet postgres driver requires libpq client library >= 17" when PG_VERSION_NUM < 170000). Verified it fires on a libpq 16 host: in an ubuntu:24.04 container (libpq-dev 16.15) compiling ext/postgres/postgres.c aborts at line 11 with the named error.

Compat matrix, pg16 server leg (the Scaleway target of record): built the driver against the host libpq (17+, Homebrew) and ran open / query / prepare / stmt:query / stmt:close (PQclosePrepared round-trip) / exec+query roundtrip / close against a postgres:16 container on 127.0.0.1:55432 — all OK. The PQclosePrepared path that motivated the floor works against a pg16 server.

Refs

Ticket 216.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

…istinction; name floor in spec pending message (#223)
Copilot AI balanced review requested due to automatic review settings November 1, 2026 09:09
@simbo1905
simbo1905 enabled auto-merge November 1, 2026 09:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

There are no active review issues for the changes clarifying PostgreSQL client-library requirements and server compatibility.

No open issues 🎉

What changed in this PR

Clarifies that Lunet’s PostgreSQL driver requires libpq client library 17+ at build/load time, while PostgreSQL 16 servers remain compatible. This documents the existing requirement without changing driver behavior.

Changes:

  • Explains the client-versus-server version distinction in the driver README and English/Chinese release-layout install comments.
  • Updates the PostgreSQL spec’s pending message to highlight the client requirement and point to troubleshooting documentation.
File Description
spec/​postgres_spec.lua Adds the libpq client requirement and README pointer to the pending message.
ext/​postgres/​README.md Clarifies that the client version floor does not require a PostgreSQL 17+ server.
docs/​RELEASE-LAYOUT.md Updates install comments with client requirements and server compatibility.
docs/​RELEASE-LAYOUT-CN.md Mirrors the install-comment clarification in the Chinese document.

Review effort: Balanced

@simbo1905
simbo1905 disabled auto-merge November 1, 2026 09:21
@simbo1905
simbo1905 merged commit 5090b3f into main Nov 1, 2026
0 of 2 checks passed
@simbo1905
simbo1905 deleted the 216-postgres-libpq-floor branch November 1, 2026 09:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

postgres driver: state and enforce the libpq client floor; verify client/server compat matrix (pg16 servers)

2 participants